package com.kc.business.service;

import com.kc.business.domain.order.dto.BizGoodsOrderRefundDTO;
import com.kc.business.domain.order.dto.BizOrderStatisticsDTO;
import com.kc.business.domain.order.entity.BizGoodsOrder;
import com.kc.business.domain.order.entity.BizOrderGoods;
import com.kc.business.domain.order.query.BizGoodsOrderRefundQuery;
import com.kc.common.core.domain.AjaxResult;

import java.util.List;

/**
 * 商品订单管理service
 */
public interface IBizGoodsOrderService {
    /**
     * 订单统计
     * @param currDate
     * @param endTime
     * @param platformId
     * @param type
     * @return
     */
    public BizOrderStatisticsDTO getOrderHistoryStatistics(String currDate,String endTime,Integer platformId,Integer type);

    /**
     * 历史日期统计
     * @param dateList
     * @return
     */
    public List<BizOrderStatisticsDTO> getHistoryStatistics(List<String> dateList);

    /**
     * 订单列表
     * @param bizGoodsOrder
     * @return
     */
    public List<BizGoodsOrder> getOrderList(BizGoodsOrder bizGoodsOrder);

    /**
     * 退款商品列表
     * @param bizGoodsOrderRefundDTO
     * @return
     */
    public List<BizGoodsOrderRefundDTO> getRefundList(BizGoodsOrderRefundDTO bizGoodsOrderRefundDTO);

    /**
     * 退款详情
     * @param id
     * @return
     */
    public BizGoodsOrderRefundDTO  getRefundInfo(Integer id);

    /**
     * 退款审核
     * @param bizGoodsOrderRefundQuery
     * @return
     */
    AjaxResult orderRefundCheck(BizGoodsOrderRefundQuery bizGoodsOrderRefundQuery);
    /**
     * 获取订单下商品状态名称
     * @param goodsOrder
     * @param orderGoods
     * @return
     */
    String getGoodsStatusName(BizGoodsOrder goodsOrder, BizOrderGoods orderGoods);

    /**
     * 获取订单详情
     * @param orderId
     * @return
     */
    BizGoodsOrder getOrderInfo(Integer orderId);

    /**
     * 修改订单
     * @param bizGoodsOrder
     * @return
     */
    int updateOrderById(BizGoodsOrder bizGoodsOrder);

    /**
     * 更改订单
     * @param bizGoodsOrder
     * @return
     */
    Integer updateOrder(BizGoodsOrder bizGoodsOrder);

    /**
     * 商家待发货订单数量
     * @param platformId
     * @param platformType
     * @return
     */
    Integer getNoSendOut(Integer platformId,Integer platformType);

    /**
     * 商家待退款订单数量
     * @param platformId
     * @param platformType
     * @return
     */
    Integer getNoRefund(Integer platformId,Integer platformType);


}
